package com.helin.helinhealth.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.helin.helinhealth.dto.HealthRecordDTO;
import com.helin.helinhealth.dto.HealthReportDTO;
import com.helin.helinhealth.dto.HealthTrendDTO;
import com.helin.helinhealth.entity.HealthRecord;
import com.helin.helinhealth.entity.HealthReport;

import java.time.LocalDate;
import java.util.List;

/**
 * 健康服务接口
 */
public interface HealthService extends IService<HealthRecord> {
    
    /**
     * 记录健康数据
     * 
     * @param recordDTO 健康记录DTO
     * @return 创建的健康记录ID
     */
    Long recordHealth(HealthRecordDTO recordDTO);
    
    /**
     * 获取健康趋势数据
     * 
     * @param type 记录类型：1-血压 2-血糖
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 健康趋势DTO
     */
    HealthTrendDTO getHealthTrend(Integer type, LocalDate startDate, LocalDate endDate);
    
    /**
     * 获取用户健康记录列表
     * 
     * @param type 记录类型：1-血压 2-血糖，null表示所有类型
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 健康记录列表
     */
    List<HealthRecordDTO> getHealthRecords(Integer type, LocalDate startDate, LocalDate endDate);
    
    /**
     * 生成健康报告
     * 
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 健康报告DTO
     */
    HealthReportDTO generateHealthReport(LocalDate startDate, LocalDate endDate);
} 